{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import h5py\n",
    "import numpy as np\n",
    "import requests\n",
    "import getpass\n",
    "import socket\n",
    "import json\n",
    "import zipfile\n",
    "import io\n",
    "import math\n",
    "from glob import glob\n",
    "import os\n",
    "import shutil\n",
    "import pprint\n",
    "import time\n",
    "import geopandas as gpd\n",
    "import matplotlib.pyplot as plt\n",
    "import fiona\n",
    "import re\n",
    "import sys\n",
    "module_path = os.path.abspath(os.path.join('..'))\n",
    "if module_path not in sys.path:\n",
    "    sys.path.append(module_path)\n",
    "# To read KML files with geopandas, we will need to enable KML support in fiona (disabled by default)\n",
    "fiona.drvsupport.supported_drivers['LIBKML'] = 'rw'\n",
    "from shapely.geometry import Polygon, mapping\n",
    "from shapely.geometry.polygon import orient\n",
    "from statistics import mean\n",
    "from requests.auth import HTTPBasicAuth\n",
    "from readers.read_HDF5_ATL03 import read_HDF5_ATL03\n",
    "from readers.get_ATL03_x_atc import get_ATL03_x_atc\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdin",
     "output_type": "stream",
     "text": [
      "Earthdata Login password:  ·················\n"
     ]
    }
   ],
   "source": [
    "# Creating a token\n",
    "\n",
    "# Earthdata Login credentials\n",
    "\n",
    "# Enter your Earthdata Login user name\n",
    "uid = 'zhfair'\n",
    "# Enter your email address associated with your Earthdata Login account\n",
    "email = 'zhfair@umich.edu'\n",
    "pswd = getpass.getpass('Earthdata Login password: ')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "63857721-5E32-7F6D-B1EE-4942B57CAE40\n"
     ]
    }
   ],
   "source": [
    "# Request token from Common Metadata Repository using Earthdata credentials\n",
    "token_api_url = 'https://cmr.earthdata.nasa.gov/legacy-services/rest/tokens'\n",
    "hostname = socket.gethostname()\n",
    "ip = socket.gethostbyname(hostname)\n",
    "\n",
    "data = {\n",
    "    'token': {\n",
    "        'username': uid,\n",
    "        'password': pswd,\n",
    "        'client_id': 'NSIDC_client_id',\n",
    "        'user_ip_address': ip\n",
    "    }\n",
    "}\n",
    "headers={'Accept': 'application/json'}\n",
    "response = requests.post(token_api_url, json=data, headers=headers)\n",
    "token = json.loads(response.content)['token']['id']\n",
    "print(token)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Data set ID\n",
    "short_name = 'ATL06'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'feed': {'entry': [{'archive_center': 'NASA NSIDC DAAC',\n",
      "                     'associations': {'services': ['S1568899363-NSIDC_ECS',\n",
      "                                                   'S1613689509-NSIDC_ECS',\n",
      "                                                   'S1613669681-NSIDC_ECS']},\n",
      "                     'boxes': ['-90 -180 90 180'],\n",
      "                     'browse_flag': False,\n",
      "                     'coordinate_system': 'CARTESIAN',\n",
      "                     'data_center': 'NSIDC_ECS',\n",
      "                     'dataset_id': 'ATLAS/ICESat-2 L3A Land Ice Height V001',\n",
      "                     'has_formats': True,\n",
      "                     'has_spatial_subsetting': True,\n",
      "                     'has_temporal_subsetting': True,\n",
      "                     'has_transforms': False,\n",
      "                     'has_variables': True,\n",
      "                     'id': 'C1511847675-NSIDC_ECS',\n",
      "                     'links': [{'href': 'https://n5eil01u.ecs.nsidc.org/ATLAS/ATL06.001/',\n",
      "                                'hreflang': 'en-US',\n",
      "                                'length': '0.0KB',\n",
      "                                'rel': 'http://esipfed.org/ns/fedsearch/1.1/data#'},\n",
      "                               {'href': 'http://nsidc.org/daac/subscriptions.html',\n",
      "                                'hreflang': 'en-US',\n",
      "                                'length': '0.0KB',\n",
      "                                'rel': 'http://esipfed.org/ns/fedsearch/1.1/data#'},\n",
      "                               {'href': 'https://search.earthdata.nasa.gov/search/granules?p=C1511847675-NSIDC_ECS&m=-87.87967837686685!9.890967019347585!1!1!0!0%2C2&tl=1542476530!4!!&q=atl06&ok=atl06',\n",
      "                                'hreflang': 'en-US',\n",
      "                                'length': '0.0KB',\n",
      "                                'rel': 'http://esipfed.org/ns/fedsearch/1.1/data#'},\n",
      "                               {'href': 'https://openaltimetry.org/',\n",
      "                                'hreflang': 'en-US',\n",
      "                                'length': '0.0KB',\n",
      "                                'rel': 'http://esipfed.org/ns/fedsearch/1.1/data#'},\n",
      "                               {'href': 'https://doi.org/10.5067/ATLAS/ATL06.001',\n",
      "                                'hreflang': 'en-US',\n",
      "                                'rel': 'http://esipfed.org/ns/fedsearch/1.1/metadata#'},\n",
      "                               {'href': 'https://doi.org/10.5067/ATLAS/ATL06.001',\n",
      "                                'hreflang': 'en-US',\n",
      "                                'rel': 'http://esipfed.org/ns/fedsearch/1.1/documentation#'}],\n",
      "                     'online_access_flag': True,\n",
      "                     'orbit_parameters': {'inclination_angle': '92.0',\n",
      "                                          'number_of_orbits': '0.071428571',\n",
      "                                          'period': '94.29',\n",
      "                                          'start_circular_latitude': '0.0',\n",
      "                                          'swath_width': '36.0'},\n",
      "                     'organizations': ['NASA NSIDC DAAC',\n",
      "                                       'NASA/GSFC/EOS/ESDIS'],\n",
      "                     'original_format': 'ISO19115',\n",
      "                     'processing_level_id': 'Level 3',\n",
      "                     'short_name': 'ATL06',\n",
      "                     'summary': 'This data set (ATL06) provides geolocated, '\n",
      "                                'land-ice surface heights (above the WGS 84 '\n",
      "                                'ellipsoid, ITRF2014 reference frame), plus '\n",
      "                                'ancillary parameters that can be used to '\n",
      "                                'interpret and assess the quality of the '\n",
      "                                'height estimates. The data were acquired by '\n",
      "                                'the Advanced Topographic Laser Altimeter '\n",
      "                                'System (ATLAS) instrument on board the Ice, '\n",
      "                                'Cloud and land Elevation Satellite-2 '\n",
      "                                '(ICESat-2) observatory.',\n",
      "                     'time_start': '2018-10-14T00:00:00.000Z',\n",
      "                     'title': 'ATLAS/ICESat-2 L3A Land Ice Height V001',\n",
      "                     'version_id': '001'}],\n",
      "          'id': 'https://cmr.earthdata.nasa.gov:443/search/collections.json?short_name=ATL06',\n",
      "          'title': 'ECHO dataset metadata',\n",
      "          'updated': '2019-06-18T23:39:11.707Z'}}\n"
     ]
    }
   ],
   "source": [
    "# Get json response from CMR collection metadata and print results. This provides high-level metadata on a data set or \"collection\", provide in json format.\n",
    "\n",
    "params = {\n",
    "    'short_name': short_name\n",
    "}\n",
    "\n",
    "cmr_collections_url = 'https://cmr.earthdata.nasa.gov/search/collections.json'\n",
    "response = requests.get(cmr_collections_url, params=params)\n",
    "results = json.loads(response.content)\n",
    "pprint.pprint(results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "001\n"
     ]
    }
   ],
   "source": [
    "# Find all instances of 'version_id' in metadata and print most recent version number\n",
    "\n",
    "versions = [i['version_id'] for i in results['feed']['entry']]\n",
    "latest_version = max(versions)\n",
    "print(latest_version)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2019-01-02T00:00:00Z,2019-01-02T23:59:59Z\n"
     ]
    }
   ],
   "source": [
    "# Input temporal range \n",
    "\n",
    "# Input start date in yyyy-MM-dd format\n",
    "start_date = '2019-01-02'\n",
    "# Input start time in HH:mm:ss format\n",
    "start_time = '00:00:00'\n",
    "# Input end date in yyyy-MM-dd format\n",
    "end_date = '2019-01-02'\n",
    "# Input end time in HH:mm:ss format\n",
    "end_time = '23:59:59'\n",
    "\n",
    "temporal = start_date + 'T' + start_time + 'Z' + ',' + end_date + 'T' + end_time + 'Z'\n",
    "print(temporal)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "63,-77.3437,78,-63.8437\n"
     ]
    }
   ],
   "source": [
    "# # Commenting for tutorial since we will be walking through option 3 (spatial file input) together\n",
    "# # Bounding Box spatial parameter in 'W,S,E,N' format\n",
    "\n",
    "# # Input bounding box\n",
    "# # Input lower left longitude in decimal degrees\n",
    "LL_lon = '63'\n",
    "# # Input lower left latitude in decimal degrees\n",
    "LL_lat = '-77.3437'\n",
    "# # Input upper right longitude in decimal degrees\n",
    "UR_lon = '78'\n",
    "# # Input upper right latitude in decimal degrees\n",
    "UR_lat = '-63.8437'\n",
    "\n",
    "bounding_box = LL_lon + ',' + LL_lat + ',' + UR_lon + ',' + UR_lat\n",
    "# # aoi value used for CMR params below\n",
    "aoi = '1'\n",
    "print(bounding_box)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CMR search parameters:  {'short_name': 'ATL06', 'version': '001', 'temporal': '2019-01-02T00:00:00Z,2019-01-02T23:59:59Z', 'page_size': 100, 'page_num': 1, 'bounding_box': '63,-77.3437,78,-63.8437'}\n"
     ]
    }
   ],
   "source": [
    "#Create CMR parameters used for granule search. Modify params depending on bounding_box or polygon input.\n",
    "\n",
    "if aoi == '1':\n",
    "# bounding box input:\n",
    "    params = {\n",
    "    'short_name': short_name,\n",
    "    'version': latest_version,\n",
    "    'temporal': temporal,\n",
    "    'page_size': 100,\n",
    "    'page_num': 1,\n",
    "    'bounding_box': bounding_box\n",
    "    }\n",
    "else:\n",
    "    \n",
    "# If polygon input (either via coordinate pairs or shapefile/KML/KMZ):\n",
    "    params = {\n",
    "    'short_name': short_name,\n",
    "    'version': latest_version,\n",
    "    'temporal': temporal,\n",
    "    'page_size': 100,\n",
    "    'page_num': 1,\n",
    "    'polygon': polygon,\n",
    "    }\n",
    "\n",
    "print('CMR search parameters: ', params)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Query number of granules using our (paging over results)\n",
    "\n",
    "granule_search_url = 'https://cmr.earthdata.nasa.gov/search/granules'\n",
    "\n",
    "granules = []\n",
    "while True:\n",
    "    response = requests.get(granule_search_url, params=params, headers=headers)\n",
    "    results = json.loads(response.content)\n",
    "\n",
    "    if len(results['feed']['entry']) == 0:\n",
    "        # Out of results, so break out of loop\n",
    "        break\n",
    "\n",
    "    # Collect results and increment page_num\n",
    "    granules.extend(results['feed']['entry'])\n",
    "    params['page_num'] += 1\n",
    "\n",
    "    \n",
    "# Get number of granules over my area and time of interest\n",
    "len(granules)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "122.86907005309999"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "granule_sizes = [float(granule['granule_size']) for granule in granules]\n",
    "\n",
    "# Average size of granules in MB\n",
    "mean(granule_sizes)\n",
    "\n",
    "# Total volume in MB\n",
    "sum(granule_sizes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "https://n5eil02u.ecs.nsidc.org/egi/capabilities/ATL06.001.xml\n"
     ]
    }
   ],
   "source": [
    "# Query service capability URL \n",
    "\n",
    "from xml.etree import ElementTree as ET\n",
    "\n",
    "capability_url = f'https://n5eil02u.ecs.nsidc.org/egi/capabilities/{short_name}.{latest_version}.xml'\n",
    "\n",
    "print(capability_url)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create session to store cookie and pass credentials to capabilities url\n",
    "\n",
    "session = requests.session()\n",
    "s = session.get(capability_url)\n",
    "response = session.get(s.url,auth=(uid,pswd))\n",
    "\n",
    "root = ET.fromstring(response.content)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "# collect lists with each service option\n",
    "\n",
    "subagent = [subset_agent.attrib for subset_agent in root.iter('SubsetAgent')]\n",
    "\n",
    "# variable subsetting\n",
    "variables = [SubsetVariable.attrib for SubsetVariable in root.iter('SubsetVariable')]  \n",
    "variables_raw = [variables[i]['value'] for i in range(len(variables))]\n",
    "variables_join = [''.join(('/',v)) if v.startswith('/') == False else v for v in variables_raw] \n",
    "variable_vals = [v.replace(':', '/') for v in variables_join]\n",
    "\n",
    "# reformatting\n",
    "formats = [Format.attrib for Format in root.iter('Format')]\n",
    "format_vals = [formats[i]['value'] for i in range(len(formats))]\n",
    "format_vals.remove('')\n",
    "\n",
    "# reprojection only applicable on ICESat-2 L3B products, yet to be available. \n",
    "\n",
    "# reformatting options that support reprojection\n",
    "normalproj = [Projections.attrib for Projections in root.iter('Projections')]\n",
    "normalproj_vals = []\n",
    "normalproj_vals.append(normalproj[0]['normalProj'])\n",
    "format_proj = normalproj_vals[0].split(',')\n",
    "format_proj.remove('')\n",
    "format_proj.append('No reformatting')\n",
    "\n",
    "#reprojection options\n",
    "projections = [Projection.attrib for Projection in root.iter('Projection')]\n",
    "proj_vals = []\n",
    "for i in range(len(projections)):\n",
    "    if (projections[i]['value']) != 'NO_CHANGE' :\n",
    "        proj_vals.append(projections[i]['value'])\n",
    "        \n",
    "# reformatting options that do not support reprojection\n",
    "no_proj = [i for i in format_vals if i not in format_proj]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'id': 'ICESAT2', 'spatialSubsetting': 'true', 'spatialSubsettingShapefile': 'true', 'temporalSubsetting': 'true', 'type': 'both', 'maxGransSyncRequest': '100', 'maxGransAsyncRequest': '2000'}]\n"
     ]
    }
   ],
   "source": [
    "print(subagent)\n",
    "if len(subagent) < 1 :\n",
    "    agent = 'NO'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "METADATA                 Group\n",
      "ancillary_data           Group\n",
      "gt1l                     Group\n",
      "gt1r                     Group\n",
      "gt2l                     Group\n",
      "gt2r                     Group\n",
      "gt3l                     Group\n",
      "gt3r                     Group\n",
      "orbit_info               Group\n",
      "quality_assessment       Group\n"
     ]
    }
   ],
   "source": [
    "# Identify directory and primary groups within ATL06\n",
    "dir = '/home/jovyan/ATL06/'\n",
    "file = ''\n",
    "\n",
    "!h5ls '/home/jovyan/ATL06/ATL06_20190102184312_00810210_001_01.h5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "65123\n",
      "65123\n"
     ]
    }
   ],
   "source": [
    "# Grabbing the data, sticking to the center strong laser\n",
    "with h5py.File('/home/jovyan/ATL06/ATL06_20190102184312_00810210_001_01.h5') as f:\n",
    "    elev_land_ice = f['/gt2l/land_ice_segments/h_li'][:]\n",
    "    xatc_land_ice = f['/gt2l/land_ice_segments/ground_track/x_atc'][:]\n",
    "    \n",
    "print(len(elev_land_ice))\n",
    "print(len(xatc_land_ice))\n",
    "\n",
    "elev_land_ice[elev_land_ice > 10000] = np.nan"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plotting the basic ATL06 data, to know what we are looking at\n",
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "plt.plot(xatc_land_ice,elev_land_ice)\n",
    "plt.show()\n",
    "\n",
    "# testing, will remove"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
